package com.bw.park.view

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import com.alibaba.android.arouter.facade.annotation.Autowired
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.ToastUtils
import com.bw.lib_base.entity.ParkBeanItem
import com.bw.lib_base.mvvm.BaseActivity
import com.bw.park.ParkViewModel
import com.bw.park.R
import com.bw.park.databinding.ActivityParkEditBinding
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
@Route(path = "/park/ParkEditActivity")
class ParkEditActivity : BaseActivity<ActivityParkEditBinding, ParkViewModel>() {
    @Autowired
    lateinit var pid: String
    var area = "A区停车场"
    var type = "标准车位"
    var areaId = 1
    var status = "空闲"
    override fun initView() {
        ARouter.getInstance().inject(this)
        viewModel.getParkById(pid.toInt())

        binding.headOk.setOnClickListener {
            val carNo = binding.parkaddCarNo.text.toString()
            val remark = binding.parkaddRemark.text.toString()
            val carNum = binding.parkaddCarNum.text.toString()
            val name = binding.parkaddName.text.toString()
            val item = ParkBeanItem(areaId,area,null,carNum,remark,carNo,status,type,0,name)
            viewModel.update(pid.toInt(),item)
        }

        binding.parkaddRg.setOnCheckedChangeListener { group, checkedId ->
            when(checkedId){
                R.id.parkadd_kx ->status = "空闲"
                R.id.parkadd_zy ->status = "已占用"
                R.id.parkadd_wh ->status = "维护中"
            }
        }
    }

    override fun initData() {
        viewModel.detailData.observe(this){
            binding.parkaddCarNo.setText(it.spaceNumber)
            when(it.spaceStatus){
                "空闲" -> binding.parkaddRg.check(R.id.parkadd_kx)
                "已占用" -> binding.parkaddRg.check(R.id.parkadd_zy)
                "维护中" -> binding.parkaddRg.check(R.id.parkadd_wh)
            }
            binding.parkaddName.setText(it.userName)
            binding.parkaddCarNum.setText(it.licensePlate)
            binding.parkaddRemark.setText(it.remarks)

            val areas = mutableListOf<String>("A区停车场", "B区停车场", "C区停车场")
            if (areas.contains(it.areaName)) {
                areas.add(0,it.areaName)
            }
            val areaAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, areas)
            areaAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
            binding.parkaddArea.adapter = areaAdapter
            binding.parkaddArea.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
                override fun onItemSelected(
                    parent: AdapterView<*>?,
                    view: View?,
                    position: Int,
                    id: Long
                ) {
                area = areas[position]
                areaId = position +1
                }

                override fun onNothingSelected(parent: AdapterView<*>?) {

                }

            }

            val types = mutableListOf<String>("标准车位", "VIP车位")
            if (types.contains(it.spaceType)){
                types.add(0,it.spaceType)
            }
            val typeAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, types)
            typeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
            binding.parkaddType.adapter = typeAdapter
            binding.parkaddType.onItemSelectedListener = object :
                AdapterView.OnItemSelectedListener {
                override fun onItemSelected(
                    parent: AdapterView<*>?,
                    view: View?,
                    position: Int,
                    id: Long
                ) {
                    type = types[position]
                }

                override fun onNothingSelected(parent: AdapterView<*>?) {

                }

            }
        }
        viewModel.updateParkData.observe(this){
            ToastUtils.showLong("编辑成功")
            finish()
        }
    }
}